package Learn;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class BigDecimalDemo1 {
    public static void main(String[] args) {
//        System.out.println(0.09+0.01);
        //float 4   23个小数位
        //double 8  52个小数位
        //IEEE 754
        //BigDecimal 用来表示很大的小数（精确计算）

//        BigDecimal bd1=new BigDecimal("0.01");
//        BigDecimal bd2=new BigDecimal("0.09");
//        System.out.println(bd1.add(bd2));


        //静态方法获取对象
        BigDecimal bd3=BigDecimal.valueOf(10);
        System.out.println(bd3);

        //表示的数值不大 没有超过double的范围就用静态方法
        //0-10整数提前创建好了 不会new了


        //成员方法
        //重载
        //divide(BigDecimal val,精确几位，舍入模式);
        //除不尽只能用上一行方法 不然报错
        BigDecimal bd4=BigDecimal.valueOf(10.0);
        BigDecimal bd5=BigDecimal.valueOf(3.0);

//        BigDecimal bd6=bd4.divide(bd5,2,BigDecimal.ROUND_HALF_UP);
        //过时

        BigDecimal bd6=bd4.divide(bd5,2,RoundingMode.HALF_UP);
        System.out.println(bd6);


    }

    //存储方式
    //底层也是一个数组 把字符串的每一个字符转换成ASCII值保存在数组

}
